//
//  CYSearchBar.swift
//  CYWeibo
//
//  Created by 媛 on 16/5/20.
//  Copyright © 2016年 yuan. All rights reserved.
//

import UIKit

class CYSearchBar: UIView {
    
//    @IBInspectable var cornerRadius:CGFloat {
//    
//        get {
//            return layer.cornerRadius
//        }
//        set {
//            layer.cornerRadius = newValue
//        }
//    }

    @IBOutlet weak var searchTF: UITextField!
    
    @IBOutlet weak var cancelBtn: UIButton!
    //searchTF右侧的约束
    @IBOutlet weak var rightCons: NSLayoutConstraint!
    
    
    
    //提供加载nib文件的 '类方法' 方法
    // 在func 前 加 'class' 就是类方法
    class func loadSearchBar() -> CYSearchBar {
        
        let searchView = NSBundle.mainBundle().loadNibNamed("CYSearchBar", owner: nil, options: nil).last as! CYSearchBar
        return searchView
    }

    
    //在  awakeFromNib 做初始设置
    override func awakeFromNib() {
        
        //设置宽度
        //bounds.width中的width知识bounds的只读属性
        //要修改大小需要通过size进行修改
        self.bounds.size.width = ScreenWidth
        
        //设置左侧的放大镜
        searchTF.leftView = UIImageView(image: UIImage(named: "searchbar_textfield_search_icon"))
        searchTF.leftView?.frame = CGRect(x: 0, y: 0, width: 50, height: 40)
        //设置显示的时间
        searchTF.leftViewMode = .Always
        //设置显示的样式
        searchTF.leftView?.contentMode = .Center
        
        //设置圆角
        searchTF.layer.cornerRadius = 20
        searchTF.layer.masksToBounds = true
        
        //设置边线
        searchTF.layer.borderColor = UIColor.orangeColor().CGColor
        searchTF.layer.borderWidth = 2
        
    }

    
    //MARK: searchTF的点击事件
    @IBAction func searchTFBeginEditing(sender: AnyObject) {
        
        //开始编辑输入框时
        // 修改约束， 系统默认的动画时间：0.25
        UIView.animateWithDuration(0.5) {
            self.rightCons.constant = self.cancelBtn.bounds.width
            //“提前”强制刷新
            self.layoutIfNeeded()
        }
    }
    
    
    //关联 取消按钮点击事件 取消 textFiled编辑状态
    @IBAction func cancelBtnClick(sender: AnyObject) {
        
        UIView.animateWithDuration(0.5) {
            //修改约束，也可写在动画外部
            self.rightCons.constant = 0
            /* 提前强制刷新视图
              1.自动布局的视图有frame 吗?  有frame
              2.视图的frame 是在layoutSubviews方法中通过约束来设置
              3.此方法中就是提前调用了layoutSubviews
              4.更新视图的frame发生在 一个动画闭包中
              5.执行父视图的layoutIfNeeded
            */
            self.layoutIfNeeded()
            
            //结束编辑状态
  //        searchTF.resignFirstResponder()
            self.endEditing(true)
        }
        
    
    }

}
